"""
文件操作
mode: r   w
      rb  wb
r w => 纯文本文件读写
rb wb => 纯文本，图片，音乐，电影
"""

"""
读取操作：注意如果文件找不到就会报异常
默认的mode为 rt :读取纯文本文件
"""
path = "D:/test"
stream = open(r"D:\test\a.txt", mode='rt')
# container = stream.read()
# print(container)
result = stream.readable()  # 判断文件是否可读，返回True或False
print(result)
print("------------")
# result = stream.readline()  # 一行一行读取，可以用while True:进行循环读取
# print(result)
lines = stream.readlines()  # 读取所有的行，返回一个列表
print(lines)

# 读取二进制文件
stream = open(r"D:\test\a.png", mode="rb")  # 图片需要rb形式读取
result = stream.read()
print(result)

# 写文件
"""
mode 是 w 模式 ： 每次都会把原来的内容清空，然后再写入
mode 是 a 模式 ：追加内容，不会清空原内容
"""
stream = open(r"D:\test\b.txt", 'w')
result = stream.write("hello world\n")
print(result)
stream.writelines("高嘉银\n")
stream.writelines(["廖立晴\n", "詹姆斯\n"])
stream.close()
# append模式
stream = open(r"D:\test\b.txt", 'a')
stream.write("科比\n")
stream.close()

# 文件复制
with open(r"D:\test\a.png", mode="rb") as stdin:  # 图片需要rb形式读取
    container = stdin.read()
    with open(r"D:\test\b.png", mode="wb") as stout:
        stout.write(container)
        pass
    pass
print("文件复制完成")
